//package com.jyl.connecter.server.custom;
//
//import com.google.protobuf.InvalidProtocolBufferException;
//import com.jyl.connecter.config.TaskProto;
//import io.netty.buffer.ByteBuf;
//import io.netty.buffer.Unpooled;
//import io.netty.channel.ChannelHandlerContext;
//import io.netty.handler.codec.ByteToMessageDecoder;
//import lombok.extern.slf4j.Slf4j;
//
//import java.util.List;
//
//@Slf4j
//public class ProtobufDecoder extends ByteToMessageDecoder {
//
//    @Override
//    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) {
//        in.markReaderIndex();
//
//        if(in.readableBytes()<2){//不够包头
//            return;
//        }
//
//        //读取传送过来的消息长度
//        int length = in.readUnsignedShort();
//
//        if(length<0){
//            ctx.close();
//        }
//
//        if(length>in.readableBytes()){// 读到的消息体长度如果小于传送股狗来的消息长度
//            in.resetReaderIndex();
//            return;
//        }
//
//        ByteBuf frame = Unpooled.buffer(length);
//
//        in.readBytes(frame);
//
//        byte[] inByte = frame.array();
//
//        TaskProto.Task task = null;
//
//        try {
//            task = TaskProto.Task.parseFrom(inByte);
//            if(task != null){
//                out.add(task);
//            }
//        } catch (InvalidProtocolBufferException e) {
//            log.error(ctx.channel().remoteAddress()+",decode failed.",e);
//        }
//
//    }
//}
